home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Directorty Opus 5 - Magellan
/
Opus 5 - Magellan.iso
/
Extras
/
DOpusLhARexx2
/
Docs
/
DOpusLhARexx.doc
next >
Wrap
Text File
|
1994-07-01
|
41KB
|
1,314 lines
DOpusLhARexx Documentation
Documentation for DOpusLhARexx 40.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Date: July 1, 1994
© Copyright 1994 Nirvana Software
Author: Geoff Seeley
Overview
- About the archive.
What's New?
- Changes from the last release.
Installation
- Setting up on your system.
Operation
- Using the scripts.
Copyrights
- Important information.
Acknowledgments
- Who made it possible.
Known Bugs
- What doesn't work.
Program History
- What was done to fix the above :-)
The Furture
- What I would like to do.
Preface
Preface
~~~~~~~
DOpusLhARexx is a set of ARexx scripts for Directory Opus that will allow
you to view LhA archive files in a DOpus window and extract, delete, add,
view and print one or more files to/from the archive.
The DOpusLhARexx programs were developed and tested using the following
programs and libraries. Your mileage may vary with other versions....
LhA v1.38
Directory Opus v4.11
rexxsupport.library
v34.9
What's New
Changes from Release 40.1
~~~~~~~~~~~~~~~~~~~~~~~~~
Enhancements
~~~~~~~~~~~~
- Increased speed!!
- Added script to view file(s) from an LhA archive
- Added script to print file(s) from an LhA archive
- Double click on a file to view
- Click-m-Click extraction of files
- Restore or ignore full pathnames in archive
- Ability to preserve existing files upon extraction
- Directory Opus format help file for scripts
- Proper pattern matching in file selection
Bug Fixes
~~~~~~~~~
- Fixed problems with
rexxsupport.library
when it's not installed in
the ARexx search path.
- Fixed problems with names containing spaces.
Copyrights
Copyrights
~~~~~~~~~~
The code within DOpusLhARexx is freely distributable and may not be
sold for profit, however the code remains:
Copyrighted © 1994 (All rights reserved)
by Nirvana Software and Geoff Seeley.
DOpusLhARexx may be included in public domain libraries such as Fred
Fish's "Amiga Freely Redistributable Library" as long as no profit
is made from these programs and no files in the archive are modified
in any way.
DOpusLhARexx may also be included on the AmiNet CD-ROM. (As long as
I get my free copy :-)
If you *must* make improvements to these programs, please, either send
them to me for inclusion in a future release, or at least upload them
to your nearest AmiNet archive site so that the Amiga community can
benefit and enjoy.
No warrantees are expressed or implied for these programs. Use them at
your own risk.
Directory Opus is copyrighted by Jonathan Potter and sold by
Inovatronics, Inc.
ARexx is a trademark of the Wishful Thinking Developement Corp. and
William S. Hawes.
LhA is copyrighted by Stefan Boberg.
AmigaGuide, Commodore's Installer and Workbench are copyrighted trademarks
of Commodore-Amiga, Inc.
Acknowledgements
Acknowledgements
~~~~~~~~~~~~~~~~
The following people and groups made these programs possible.
Thanks go to:
Jonathan Potter for creating the indispensable Directory Opus program.
Bill Hawes for implementing Rexx for the Amiga, and Commodore for
including it into the OS.
Billy Gates and MicroSoft for creating DOS6, Windows, Word, Excel, etc.
which convince me each and every work day that the Commodore Amiga is
*the* one and *only* platform to program/use...
The Vancouver Canucks hockey team for providing me with exciting
1994 Stanley Cup play-off action to watch while updating these boring
documents. Go Canucks!
Pink Floyd for a *wonderful* concert in Vancouver...
Thanks to the following people for feedback and/or bug reports:
Amnon Itamar Govrin s2543587@techst02.techion.ac.il
Henning Sauer H.SAUER@BIONIC.zer.de
Bastiau Kinne a09j@zfn.uni.bremen.de
Wolfgang Brodowski BRODY@CHEEZY.AWORD.DE
Walter Dees walterd@stack.urc.tue.nl
Reto Thoma Reto_Thoma@p2.817.chg.imp.com
Micheal Barsoom mbars@bluejay.creighton.edu
Bill Leath(?) bleath@BIX.com
Lothar Mai Hiedermotzing, Germany
Any anybody else I may have missed. (Sorry). Thanks!
Installation
Installation
~~~~~~~~~~~~
Sorry, no Commodore Installer script. You have to install this by hand.
Please read this whole section before starting the installation process.
The DOpusLhARexx archive should contain the following files:
.Product-Info
DOpusLhARexx.readme
DOpusLhARexx/Docs/DOpusLhARexx.guide
DOpusLhARexx/Docs/DOpusLhARexx.doc
DOpusLhARexx/Docs/DOpusLhARexx.HLP
DOpusLhARexx/ARexx/ListLhA.rexx
DOpusLhARexx/ARexx/GetSizesLhA.rexx
DOpusLhARexx/ARexx/ExtractFilesLhA.rexx
DOpusLhARexx/ARexx/SelectFilesLhA.rexx
DOpusLhARexx/ARexx/DelFilesLhA.rexx
DOpusLhARexx/ARexx/AddFilesLhA.rexx
DOpusLhARexx/ARexx/RestoreLhADir.rexx
DOpusLhARexx/ARexx/ViewLhAFile.rexx
DOpusLhARexx/ARexx/PrintLhAFiles.rexx
DOpusLhARexx/ARexx/LhaHandler.rexx
DOpusLhARexx/ARexx/StopLhAHandler.rexx
DOpusLhARexx/s/DirectoryOpus.CFG
DOpusLhARexx/s/DirectoryOpus.CLA
Step 1: Installing the files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I would suggest that you create a subdirectory in DOpus: called "ARexx"
and place the *.rexx files in this directory. Alternatively, you can
place them into REXX: or even S:. Be sure the set the 'S' (script) bit
on the *.rexx files using the C:Protect command.
Make sure you have the assign T: setup and pointing to a location with
some free space for temporary files. By default, all the scripts use
T: to store file lists and other temporary files although you may change
this when configuring the scripts to your setup. (See below)
In addition, you should make sure that
rexxsupport.library
is installed
in LIBS: as the scripts require a few functions from this library.
Step 2: Configuring Directory Opus
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start up DOpus and go into the configuration editor.
Select the "Buttons" editor.
Create new buttons with the following characterisics:
Name Cmd Type Command
~~~~ ~~~~~~~~ ~~~~~~~
ListLhA
ARexx DOpus:ARexx/ListLhA.rexx
GetSizesLhA
ARexx DOpus:ARexx/GetSizesLhA.rexx
ExtLhaFiles
ARexx DOpus:ARexx/ExtractFilesLhA.rexx
SelectFilesLhA
ARexx DOpus:ARexx/SelectFilesLhA.rexx
DelFilesLhA
ARexx DOpus:ARexx/DelFilesLhA.rexx
AddFilesLhA
ARexx DOpus:ARexx/AddFilesLhA.rexx
RestoreLhADir
ARexx DOpus:ARexx/RestoreLhADir.rexx
ViewLhAFile
ARexx DOpus:ARexx/ViewLhAFile.rexx
PrintLhAFiles
ARexx DOpus:ARexx/PrintLhAFiles.rexx
All of these buttons should have no flags set and the default stack,
priority and close delay values. (Consult the DOpus manual under the
section "3.5 BUTTONS/EDITOR" if you don't understand what the above
means)
Next, go into the "Menus" editor and add a new menu with the following
sub-items: (See section "3.15 MENUS/MANAGER" in the DOpus manual)
Menu Title: Lha Options
Sub Item:
Restore LhA Paths
Commands: AmigaDOS Setenv LHAREXX_EXT_OPTS "-x x "
Command Notify Now Restoring LhA Paths...
Flags: None
Sub Item:
Ignore LhA Paths~
Commands: AmigaDOS Setenv LHAREXX_EXT_OPTS "-x0 e "
Command Notify Now Ignoring LhA paths...
Flags: None
Sub Item:
Overwrite Existing Files
Commands: AmigaDOS Setenv LHAREXX_OVR_OPTS "-m "
Command Notify Overwrite Existing Files On...
Flags: None
Sub Item:
Keep Existing Files~
Commands: AmigaDOS Setenv LHAREXX_OVR_OPTS "-m0 "
Command Notify Existing Files Will Be Kept...
Flags: None
Sub Item:
Start LhA Handler
Commands: AmigaDOS Run RX DOpus:ARexx/LhaHandler.rexx
Flags: Output Window
Run asynchronously
Workbench to front
Sub Item:
Stop LhA Handler
Commands: AmigaDOS Run RX DOpus:ARexx/StopLhaHandler.rexx
Flags: Output Window
Run asynchronously
Workbench to front
(NOTE: The tildes (~) and extras spaces above ARE significate)
Step 3: Configuring the Scripts to your Setup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fire up your favorite text editor and modify the *.rexx files listed
above to conform to your system setup. You will only need to modify
a few variables near the top of each file in the "configuration
variables section".
Step 4: Double-Click/Click-M-Click Support (OPTIONAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to have the ability to extract files with click-m-click
or the ability to view a file via a double-click, you will have to
install the custom handler script. The custom handler consists of
two scripts:
LhaHandler
StopLhAHandler
I had originally planned to use DOpus' System/Startup ARexx script
configuration option to run the custom handler upon startup of DOpus
and this does in fact work, however, the problem is when you attempt
to exit DOpus, DOpus waits for the handler script to finish (which it
doesn't unless it gets the command to do so). The StopLhAHandler
script will send the "quit" command to the custom handler which will
stop it.
The best way to install and run the custom handler that I've found is
to Run it as a background task at boot time. Add a line to your
S:User-Startup (or S:Startup-Sequence) that does the following command:
Run RX DOpus:ARexx/LhaHandler.rexx >NIL:
The ListLhA script looks for the custom handler script's port when
listing the archive and will instruct DOpus to pass click-m-click/
double clicks to the custom handler if the port exists.
If your destination window is full and you use click-m-click to extract
a file, you'll notice that, undoubtedly, a file in the destination window
will be highlighted. If this bothers you, I suggest that you use
click-hold-drag (same as click-m-click) to extract the file. Click on
the file and hold the button, then drag the file horizontally into the
destination window.
Step 5: Help File (OPTIONAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to install DOpus style help for the new buttons and menu items,
you must edit the DOpus help file:
DOpus:s/DirectoryOpus.HLP
and add the contents of the DOpusLhARexx.HLP file to this file either at
the start or the end of the file.
Sample Configuration
~~~~~~~~~~~~~~~~~~~~
I've included a copy of my DOpus configuration files in the s/ subdirectory
which you may load into ConfigOpus module via the "Configure->Open" menu.
*** BE CAREFUL NOT TO SAVE THIS CONFIGURATION OVER YOUR PREVIOUS ***
*** CONFIGURATION. YOU HAVE BEEN WARNED. ***
rexxsupport.library
rexxsupport.library
~~~~~~~~~~~~~~~~~~~
Is an external shared library distributed with ARexx and should already
be installed in your LIBS: directory. Consult your ARexx documentation
if rexxsupport.library is not already installed on your system.
ListLhA
ListLhA
~~~~~~~
What it does:
~~~~~~~~~~~~~
The ListLhA script allows the user to list an LhA archive in a buffer
window.
How to use it:
~~~~~~~~~~~~~~
Move into the directory containing the LhA archive you wish to list.
Select an LhA file (only the first selected file is looked at)
Click on the "ListLhA" button.
If the selected file is indeed an LhA archive, the buffer window will clear
and the archive will be listed in the window.
Notes
~~~~~
The buffer window will display the total size of all the files in the LhA
archive and well as the number of files at the bottom of the buffer window
(These two entries are un-selectable).
If LhA detects a corrupt file within the archive, ListLhA with put up a
requester during the file list parsing which displays the name of the
file in question as well as the error message from LhA.
GetSizesLhA
GetSizesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The GetSizesLhA script will do a byte count (total) on the files currently
selected in an LhA archive window. (Much like the DOpus equivalent of
the "GetSizes" button)
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to total in an LhA archive buffer window.
Click on the "GetSizesLhA" button.
You should then see the total byte/file count listed in the status bar.
ExtLhaFiles
ExtLhaFiles
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The ExtLhaFiles script will extract one or more files from an LhA archive
window into the destination window.
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to extract in the LhA archive buffer window.
Click on the "ExtLhaFiles" button.
The script will then extract the selected file(s) to the destination
window.
Extraction Options:
~~~~~~~~~~~~~~~~~~~
The ExtLhaFiles script will use the environment variables set using the
Menu Options
to allow restoring/ignoring of full pathnames and also
auto-overwriting/confirming overwriting of existing files.
If, during extraction, LhA requires input from the user to confirm an
action such as overwriting a file, an
LhA_Input
window will appear
below the
LhA_Output
window. See the
LhA Issues
section for information
on using these windows.
See the
Known Bugs
section for problems relating to these extraction
options.
SelectFilesLhA
SelectFilesLhA
~~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The SelectFilesLhA script will allow the user to select file(s) in the
archive window via a search pattern.
How to use it:
~~~~~~~~~~~~~~
Click on the "SelectFilesLhA" button.
A requester will appear asking you for a pattern to match on. Type in
a string that will match all the files you want to select. You may
include AmigaDOS wildcards in the pattern (~,*,#?,[],etc).
All files which match the pattern will be selected. Additionally, the
GetSizesLhA script will be called and the byte count (total) of the
selected files will appear in the status bar.
Notes
~~~~~
In addition, the following special patterns perform the following
functions:
"*" - Select ALL files
"~" - Toggle selection state of files (a selected file is unselected
and vice versa)
"" - De-select ALL files
DelFilesLhA
DelFilesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The DelFilesLhA script will delete the selected file(s) from an archive
window.
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to delete from the LhA archive.
Click on the "DelFilesLhA" button.
A confirmation requester will appear giving you the chance to abort the
operation. (Once the files are deleted you CANNOT get them back)
After the files have been deleted from the LhA archive, the buffer
window will be updated by calling the ListLhA script.
If you have deleted ALL the files in the LhA archive, you will be asked
if you wish to delete the LhA archive. Selecting yes will delete the
archive and load the original directory back into the window. If you
choose no, the LhA buffer is left alone and you may add files into the
empty archive via the "AddFilesLhA" button.
Notes
~~~~~
The DelFilesLha script will prompt the user for confirmation if any of
the selected files are actually directory entries. Deleting a directory
within an LhA archive, also deletes ALL directories and files in/under
that directory. BE AWARE OF THIS!
AddFilesLhA
AddFilesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The AddFilesLhA script allows the user to add one or more files to an
LhA archive.
How to use it:
~~~~~~~~~~~~~~
List an LhA archive you want to add files into.
In the destination window, select the files and/or directories you wish
to add into the archive.
Click on the "AddFilesLhA" button.
A requester will appear asking you if you wish to store the pathnames of
the files to be added. Selecting yes will store the paths relative to
the source directory you have listed in the source window. Selecting
no will ignore the paths and store the files into the archive as if they
appeared in one directory.
A second requester will then appear asking you if you wish to add any
possible sub-directories. If you have selected a directory in the
source window and you say yes to this requester, LhA will also
recursively add any files/directories contained within the directorie(s)
you have selected. Selecting no will only add files contained in the
selected directorie(s) but no sub-directories below that.
The files will be added to the LhA archive and the buffer window will be
updated by calling the ListLha script.
Notes
~~~~~
Adding possible subdirectories automatically stores the full path names
in the archive.
If you click on the "AddFilesLhA" button with no LhA archive listed, a
requester will appear asking you if you wish to create a new LhA archive.
Selecting yes will bring up a second requester asking you for a filename
for the new archive. Enter a filename (with or without the ".lha"
extension, but excluding the path) noting that the archive will be created
in the in-active directory window. (The path where the archive is to be
created is listed in the requester)
RestoreLhADir
RestoreLhADir
~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The RestoreLhADir script will re-read the directory containing the current
LhA archive listed into the buffer window. After the directory has been
re-scanned, the LhA archive file is re-highlighted.
How to use it:
~~~~~~~~~~~~~~
Click on the "RestoreLhADir" button.
The directory containing the LhA archive will be read into the buffer
window.
Notes
~~~~~
The LhA archive which was previously listed in the buffer will then be
auto-selected in the directory window.
ViewLhAFile
ViewLhAFile
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The ViewLhAFile script will extract and view the selected file(s) using an
approriate viewer.
How to use it:
~~~~~~~~~~~~~~
Select the files you wish to view.
Click on the "ViewLhAFile" button.
Each selected file will be extracted from the archive and viewed with one
of the configured viewers based on the extension of the filename. (ie. a
file ending in .GIF will be viewed using the GIFViewer command)
If the extension on the filename is not known, the file will be viewed
using a default viewer.
Notes
~~~~~
The following file extensions are recognized:
Type Extension(s)
~~~~ ~~~~~~~~~~~~
Text .doc .readme .man .text .txt .me
IFF ILBM .iff .ham .pic .brush
Jpeg .jpg .jpeg .jfif
Gif .gif .jif
Icon .info
8svx Sound .snd .8svx
IFF Anim .anim
Mpeg Movie .mpeg .mpg
If the file is not recognized, it will be shown using the default viewer,
I suggest that you use a viewer such as xMore as the default viewer as
xMore will display a text file as text and a binary file as a hex dump.
The ViewLhAFile only looks at the filename to determine it's type, it does
NOT use DOpus' file class function. This may be implemented in a
future
version.
PrintLhAFiles
PrintLhAFiles
~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The PrintLhAFiles script will extract and print the selected file(s) using
the DOpus printing function.
In addition, the contents of the LhA buffer window (archive contents) can
also be printed via the DOpus PrintDir function.
How to use it:
~~~~~~~~~~~~~~
Select the files you wish to view.
Click on the "PrintLhAFiles" button.
A requester will appear asking you if you wish to print the buffer window
or the selected files. Selecting the "Buffer" button will call the DOpus
PrintDir function (See section "2.5 Print Dir Requester" in the DOpus
manual). If you select "Files", then the following action takes place.
Each selected file will be extracted from the archive and the DOpus
print requester will pop up to allow you to select your favorite printing
options. (See section "2.6 Print Requester" in the DOpus manual).
Notes
~~~~~
If you don't have any files selected, you will be asked if you want to
print the buffer window contents.
LhaHandler
LhaHandler
~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The LhaHandler script in a custom handler routine that will allow
click-m-click extraction of files and double-click viewing of files
in an LhA buffer window.
How to use it:
~~~~~~~~~~~~~~
The LhaHandler normally runs as a separate process (See
Installation
for details on setting up the handler) and opens an AmigaDOS port for
receiving messages from DOpus. If this port is active when the user
lists an archive in a directory window, DOpus is instructed to pass
click-m-click and double-click messages to the port. The LhaHandler will
then perform the corresponding action.
StopLhAHandler
StopLhAHandler
~~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The StopLhAHandler script can be used to shut down the
LhaHandler
custom
handler.
How to use it:
~~~~~~~~~~~~~~
Selecting the "Stop LhA Handler" menu item or running the
StopLhAHandler.rexx script from the CLI with "rx" will send a QUIT
message to the port of the LhaHandler.
Notes
~~~~~
Stopping the LhaHandler while a current LhA buffer window is listed
will cause DOpus to pop up a requester complaining about a missing port
if you attempt to click-m-click or double click on a file in the LhA
buffer window. (the buffer window is still attached to the handlers port)
Menu Options
Menu Options
~~~~~~~~~~~~
Restore LhA Paths
~~~~~~~~~~~~~~~~~
Selecting this menu option will set the environment variable used by the
ExtLhAFiles and the LhaHandler scripts to tell LhA to restore the full
pathname of the extracted file(s).
Ignore LhA Paths
~~~~~~~~~~~~~~~~
Selecting this menu option will set the environment variable used by the
ExtLhAFiles and the LhaHandler scripts to tell LhA to ignore the full
pathname of the extracted file(s).
Overwrite Existing Files
~~~~~~~~~~~~~~~~~~~~~~~~
Selecting this menu option will set the environment variable used by the
ExtLhAFiles and the LhaHandler scripts to tell LhA to automatically
overwrite files with the same name when extracting file(s).
Keep Existing Files
~~~~~~~~~~~~~~~~~~~
Selecting this menu option will set the environment variable used by the
ExtLhAFiles and the LhaHandler scripts to tell LhA to prompt the user
before overwriting files with the same name when extracting file(s).
Start LhA Handler
~~~~~~~~~~~~~~~~~
Selecting this menu option will start the custom handler as a background
task if it is not already running.
Stop LhA Handler
~~~~~~~~~~~~~~~~
Selecting this menu option will stop the custom handler running in the
background.
Using The Scripts
Action Scripts
~~~~~~~~~~~~~~
ListLhA
- Listing an LhA archive
GetSizesLhA
- Totaling selected files
ExtLhaFiles
- Extracting selected files
SelectFilesLhA
- Selecting file via a pattern
DelFilesLhA
- Deleting selected files
AddFilesLhA
- Adding selected files
RestoreLhADir
- Restoring parent directory
ViewLhAFile
- Viewing selected files
PrintLhAFiles
- Printing selected files
Utility Scripts
~~~~~~~~~~~~~~~
LhaHandler
- Custom buffer handler
StopLhAHandler
- Stopping the handler
Menu Items
~~~~~~~~~~
Restore LhA Paths
- Make LhA restore full pathnames
Ignore LhA Paths
- Make LhA ignore pathnames
Overwrite Existing Files
- Make LhA auto-overwrite files
Keep Existing Files
- Make LhA confirm overwrites
Start LhA Handler
- Start custom handler
Stop LhA Handler
- Stop custom handler
Bugs
Known Bugs
~~~~~~~~~~
If you find a problem, please tell me about it (See
Author
), and I'll
try to fix it ASAP. Please feel free to send in your suggestions for
enhancements as well...
1) None of the scripts which modify the LhA archive (add/delete) check
the permissions of the archive file to check if it's writable
Limitations & Quirks
~~~~~~~~~~~~~~~~~~~~
DOpus (at this time) only allows file entries of 256 characters. This of
course limits the scripts to LhA archives with pathnames of about 246
characters in length.
LhA has path limits similar to those of DOpus as well.
When ignoring pathname restoration during file extraction, LhA will attempt
to extract ALL files in the archive with the same name as one of the
selected files (regardless of whether the other file(s) are selected or
not). If you have the overwrite existing files option turned off, you
may selectively choose the correct files to extract as the files are
extracted in the order they are listed in the buffer window.
LhA archives containing auto-display files (.displayme) will display the
.displayme file on the Workbench screen and not the DOpus screen. If it
appears as if LhA has "frozen" during the extraction process, flip the
Workbench screen to the front to check for and cancel the .displayme
file. Additionally, you can add an option (-M) to LhA's global options
environment variable (ENV:LHAOPTS) to make LhA ignore all .displayme
files.
History
ListLhA.rexx
~~~~~~~~~~~~
40.1 - initial quick hack, only displayed files.
40.2 - found bug, was bitten by ARexx quoting so spaces in file names
screwed up.
- added true file size in display after figuring out problem above.
- added two unselectable total entries for new companion script
GetSizesLhA.rexx.
- improved messages to user showing just what the hell is going on. :-)
40.3 - added check to ignore file comments in archive.
- added check to make sure file entry is less than 256 chars.
(DOpus limit)
40.4 - added code so that DelFilesLhA and AddFilesLhA could call ListLhA
to update the window as it would be tricky for DelFilesLhA and
AddFilesLhA to do this.
40.5 - added code to set the ADDRESS to DOpus if the script was called
from someplace else, namely, DelFilesLhA and AddFilesLhA.
- bug fix. DOpus will only allow 30 characters in the window title,
I was storing the path AND LhA filename in there (which is fine
if your lha files are in a top level directory). To fix this,
I changed the code to store only the LhA filename in the window
title and added some code to store the path to the LhA archive
within the directory window itself. By playing with the display
pens, this entry is "invisible" to the user.
- added new function Quote() for dealing with filenames containing
spaces.
Release 40.2
------------
40.6 - bug fix: added rexxsupport.library via ADDLIB() Thanks to Michael
Barsoom for reporting this bug.
- bug fix: added quotes around archive pathname for device names
with spaces in them. Thanks to Reto Thoma for reporting this.
- added code to catch and display error messages from LHA.
GetSizesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version.
- tried to mimic DOpus 'GetSizes' button.
40.2 - adjusted index calculations due to new info in the footer of the
directory window.
Release 40.2
------------
40.3 - removed ScrollToShow for speed.
- added IsLhaFile() function to script.
- added code to check other window for LhA buffer, if current
window isn't.
- bug fix: added -1 (current window) to all 'Status' calls.
ExtractFilesLhA.rexx
~~~~~~~~~~~~~~~~~~~~
40.1 - initial hack after playing with AddCustHandler (gave up...
for now at least :-) The problem? Well, AddCustHandler passes
some arguments, but not quite enough info to be able to extract
files from the archive. I could get the information I need from
DOpus itself, however AddCustHandler is 'blocking' DOpus.
(ie. DOpus won't respond to ARexx as it's waiting for the
AddCustHandler script to end/return) If I can find a clean way
of using AddCustHandler for Click-M-Click extraction, I'll update
the archive.
40.2 - added code to allow extracting of all selected files at one time,
instead of having to open a CON:/LhA for each file. Left original
code in there for users who like that method. :-)
- improved messages to user.
- added check to see if there is a valid destination path.
40.3 - added code to set the ADDRESS to DOpus in case DOpus didn't invoke
the script.
40.4 - changed code to get the path to the LhA archive from the directory
window.
40.5 - added TopText call and moved "Busy on" call before requester.
40.6 - bug fixes. added missing quotes and parameters for Status calls.
40.7 - found out that LhA doesn't like certain characters in the file names
it uses to extract. Added function to change these to wildcards.
40.8 - added code to check the other window if no LhA buffer found in
current window.
Release 40.2
------------
40.9 - added quotes around DestinationPath for those people having spaces
in their filenames.
- removed ExtractEachFile function in the sake of speed (nobody used
this, right? thought so...)
- added code to call ListLha script if user has only selected the
archive but not listed it yet.
- added code to extract all files if none are selected. User must
comfirm this action.
- added code to handle case where only an archive file has been
selected, but not listed.
- added code to use new extraction options.
- added code to allow input to the LhA program to confirm actions
such as overwriting.
- bug fix: added quotes to filename when extracting without restoring
the full path to allow filenames with spaces.
- added Quote() and StripQuotes() functions. changed code to use them.
- bug fix: added StripQuotes() call in GetFileInPath() function when
no path was found.
- bug fix: changed code to removed CurrentWindow variable to fix
problems with rescaning the correct window after extraction.
AddFilesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version. I said, "What the hell!", might as well be able to
add and delete files from the archive as well as extract them...
40.2 - added code to get the path to the LhA archive from the directory
window.
40.3 - added TopText call and moved "Busy on" call before requester.
40.4 - added code to allow the user to create a new archive.
- added option to recurse subdirectories.
40.5 - found out that LhA doesn't like certain characters in the file names
it uses to add. Added function to change these to wildcards.
40.6 - added code to list a new archive after creation.
Release 40.2
------------
40.7 - added code to use a selected LhA archive file if no LhA buffer
is found.
- added code to allow adding of files/dirs with spaces in their names.
- added Quote() and StripQuotes() functions.
DelFilesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - changed the way DelFilesLhA.rexx called ListLhA.rexx as I was
getting some *very* impressive crashes (continuous yellow screen
upon reboot!) via 'call ListLhA.rexx'.
- moved the code to restore DOpus's requester button text from the
CleanUp function as I don't think it was hitting it.
40.3 - added code to get the path to the LhA archive from the directory
window.
40.4 - added TopText call and moved "Busy on" call before confirmation
requester.
- added code to see if the archive is empty after the delete. If
it is, the user is given the option of deleting the empty archive.
40.5 - added Busy on call after Request as it seems DOpus turns Busy off
after the Request.
40.6 - found out that LhA doesn't like certain characters in the file names
it uses to delete. Added function to change these to wildcards.
- added check to see if the LhA archive is empty to begin with, if
so the user is given the option of deleting it.
40.7 - added code to check the other buffer window if no archive is
detected in the current window.
Release 40.2
------------
40.8 - removed display update while created the file list for speed.
- added code to delete all files if no files are selected. User must
confirm the action.
- added code to ask the user if they want to delete the archive when
no files are selected (asked if you wish delete all). This allows
quick deleting of the archive.
- added code to ask the user if they wish to delete the selected
LhA archive if no LhA buffer exists. (checks for proper extension)
- added code to check if the file is a directory entry. If it is, the
user is asked if they wish to delete the directory and all files
within the directory.
- bug fix: added quotes to name of parent directory to allow the
restoration of a parent directory with spaces in the name.
- added flag to skip asking user if they want to delete the archive
after relisting it if they already said no.
SelectFilesLhA.rexx
~~~~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - added code to call GetFileSizesLha.rexx after file selection to
show the totals.
- added ScrollToIndex call so user sees the selection process.
40.3 - added TopText call and moved "Busy on" call before the string
requester.
- added special pattern "*" to select all files
Release 40.2
------------
40.4 - added new special case patterns "" and "~". Also added check to
see if any files are selected before calling GetSizesLhA to
avoid possible error message from that script.
- added code to do proper pattern matching using the DOpus command
PatternMatch (somehow missed this command before!)
RestoreLhADir.rexx
~~~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - added code to check the other buffer window as well.
40.3 - added code to re-highlight the LhA archive file after the
directory has been re-scanned.
Release 40.2
------------
40.4 - bug fix: added quotes to name of parent directory to allow the
restoration of a parent directory with spaces in the name.
ViewLhAFile.rexx
~~~~~~~~~~~~~~~~
Release 40.2
------------
40.1 - initial version. Thanks to Reto Thoma for the suggestion, this
Buds for you :-)
- added code to view a file ending in .guide with MultiView.
- added code for many different file types including:
DOC README MAN TEXT TXT IFF HAM PIC JPG JPEG JFIF GIF JIF INFO
SND 8SVX ME MPG MPEG ANIM
- added a default viewer case (hex viewer)
- added a signal on failure trap to catch situation where the archive
is corrupt, but was listed successfully.
- added code to extract file with full path and then delete the full
path when done to get around problem where several files in the
archive have the same name and using the '-x0 e ' LhA options.
- now display the name of the file being extracted.
- added Quote() function to solve problems when dirs/files have
spaces in them.
- added BRUSH to files types (IFFViewer)
- added ILBM to file types (IFFViewer)
PrintLhAFiles.rexx
~~~~~~~~~~~~~~~~~~
Release 40.2
------------
40.1 - initial version (last minute!)
- added code to check if any files are selected, if not don't
bother asking to print them.
LhaHandler.rexx
~~~~~~~~~~~~~~~
Release 40.2
------------
40.0 - initial test version.
40.1 - found problem preventing any usefulness of this CustomHandler
- added code to view a file on double-click
- added code to extract a file on click-m-click
- added code to use new env: options for restoring (or not)
paths from the archive.
- added code to allow input to the LhA program to confirm actions
such as overwriting.
StopLhAHandler.rexx
~~~~~~~~~~~~~~~~~~~
Release 40.2
------------
40.1 - initial version
Author
Contacting the Author
~~~~~~~~~~~~~~~~~~~~~
If you have any comments, suggestions, gripes, or God forbid... bugs,
Please feel free to contact me at the following places:
Snail-Mail: Geoff Seeley
1240 Margaret Place,
Duncan, British Columbia
Canada
V9L 4T6
E-Mail: geoff@softwords.bc.ca (InterNet)
The Furture
Possible Future Enhancements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- use DOpus' file classes to determine viewer to use in ViewLhAFiles
script.
- improve the configuration of the scripts
- compile the scripts with the ARexx compiler for speed (Can someone out
there do this please???)
- create non-commented versions for speed
- add support for ZIP, TAR, and other archivers.
- improve the creation of an archive (maybe make "CreateLhA"?)
- allow operations between archives (ie. list two archives, move files
between them)
- allow easier point and click? naming of the LhA archive (Suggested by
Bill (bleath@BIX.com)
- allow scripts to work with more than one running one of DOpus
- add code to check the permissions of a archive file before modifying
the archive.
LhA Issues
Input/Output with LhA
~~~~~~~~~~~~~~~~~~~~~
Output from the LhA program will appear in a regular console window
with a title of "LhA_Output".
If the LhA program needs input from the user during operation, a console
window titled "LhA_Input" will appear below the LhA_Output window. Input
to LhA should be typed in this window and *NOT* in the LhA_Output window
where the input prompt appears.
Index
Acknowledgements
AddFilesLhA
Author
Bugs
Copyrights
DelFilesLhA
ExtLhaFiles
GetSizesLhA
History
Installation
LhaHandler
Lha Issues
ListLhA
Menu Options
Preface
PrintLhAFiles
RestoreLhADir
rexxsupport.library
Script Operation
SelectFilesLhA
StopLhAHandler
The Future
ViewLhAFile
What's New?